import log from '@dfeidao/atom-nodejs/logger/log';
import { IncomingHttpHeaders } from 'http';
import complex_query from '@dfeidao/atom-nodejs/db/complex-query';
import query from "@dfeidao/atom-nodejs/db/query";
import { systemid, productid } from '../../atom/config';
interface Message {
	plan_list_no: string
	// cookie: {
	// 	uk: string;
	// 	[key: string]: string
	// };
	// urls: {
	// 	base: string;
	// 	origin: string;
	// 	url: string;
	// };
	// query: {};
	// params: {};
	// headers: {};
	// captcha: string;
}

interface IWebResult {
	data: unknown;
	cookie?: {
		[name: string]: string;
	} | null;
	content_type?: string;
	headers?: {
		[key: string]: string[];
	};
	attachment?: string;
	redirect?: string;
	status_code?: number;
}

interface Quhiddenfeatst {
	plan_cla_attr_no: string;
	plan_type_no: string;
}
interface par {
	post_package: string;
}
// 表名	asso_job				
// 标题	关联岗位				
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// post_package	岗位包编号	string	50	√	ⅹ
// post_no	岗位编号	string	30	√	ⅹ
// post_name	岗位名称	string	50	√	ⅹ
// productid	产品ID	string	50	√	ⅹ


// 表名	planning_project				
// 标题	计划项目				
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// plan_item_no	计划项目编号	string	50	√	ⅹ
// plan_list_no	计划清单编号	string	50	√	ⅹ
// post_no	岗位编号	string	30	√	ⅹ
// post_name	岗位名称	string	50	√	ⅹ
// plan_item_name	计划项目名称	string	200	√	ⅹ
// plan_item_depict	计划项目描述	string	500	√	ⅹ
// productid	产品ID	string	50	√	ⅹ

// 表名	plan_list				
// 标题	计划清单				
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// plan_list_no	计划清单编号	string	50	√	ⅹ
// plan_list_name	计划清单名称	string	50	√	ⅹ
// plan_type_no	计划类型编号	string	50	√	ⅹ
// plan_type_name	计划类型名称	string	50	√	ⅹ
// plan_cla_attr_no	计划分类属性编号	string	50	√	ⅹ
// plan_cla_attr_name	计划分类属性名称	string	50	√	ⅹ
// plan_list_depict	计划清单描述	string	300	√	ⅹ
// plan_list_status	计划清单状态	int	50	√	ⅹ
// productid	产品ID	string	50	√	ⅹ


export default async function atom(message: Message, action_id: string, session_id: string, headers: IncomingHttpHeaders): Promise<IWebResult> {
	log('Service begin path:e:\王举\学习文件\飞道工作文件\测试项目\kh\src\wangju\zj-000002\s001,action_id:' + action_id);


	const { prepare, exec } = query(action_id, session_id, systemid);
	prepare('planning_project', ['plan_item_no', 'plan_list_no', 'post_no', 'post_name', 'plan_item_name', 'plan_item_depict'], { productid, plan_list_no: message.plan_list_no }, 200, 1, [], []);
	const [dt] = await exec();

	prepare('plan_list', ['plan_list_no', 'plan_list_name', 'plan_type_no', 'plan_list_depict', 'plan_cla_attr_no'], { productid, plan_list_no: message.plan_list_no }, 200, 1, [], []);
	const data = await exec<Quhiddenfeatst>();

	const dt1 = data[0];
	const v = dt1[0].plan_cla_attr_no;
	const n = dt1[0].plan_type_no;
	prepare('post_package', ['post_package', 'plan_type_no', 'plan_cla_attr_no'], { productid, plan_type_no: n, plan_cla_attr_no: v }, 200, 1, [], []);
	const [dt2] = await exec<par>();
	const data1 = dt2;
	const arr = [];
	for (let i = 0; i < data1.length; i++) {
		const element = data1[i];
		const v = element.post_package;
		arr.push(v);
	}
	prepare('asso_job', ['post_package', 'post_no', 'post_name'], { productid, post_package: { $in: arr } }, 200, 1, [], []);
	const [dt3] = await exec();
	// const dd = complex_query(action_id, session_id, systemid);
	// const res = await dd
	// 	.add_field('plan_list', 'plan_cla_attr_no', 'plan_cla_attr_no')
	// 	.add_field('post_package', 'post_package', 'post_package')
	// 	.add_field('post_package', 'plan_cla_attr_no', 'plan_cla_attr_no')
	// 	.where_eq('post_package', 'plan_cla_attr_no', v)
	// 	.where_eq('post_package', 'plan_type_no', n)
	// 	.exec();
	log('Service end path:e:\王举\学习文件\飞道工作文件\测试项目\kh\src\wangju\zj-000002\s001,action_id:' + action_id);
	return { data: { dt, dt1, dt2, dt3 } } as IWebResult;
}
